#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//#include <stdlib.h>
//#include <assert.h>
// struct ListNode 
// {
//   int val;
//   struct ListNode *next;
// };
//
//struct ListNode* removeElements(struct ListNode* head, int val)
//{
//    struct ListNode* newhead, * newtail;
//    newhead = newtail = NULL;
//    struct ListNode* pcur = head;
//    while (pcur)
//    {
//        if (pcur->val != val)
//        {
//            if (newhead == NULL)
//            {
//                newhead = newtail = pcur;
//            }
//            else
//            {
//                newtail->next = pcur;
//                newtail = newtail->next;
//            }
//        }
//        pcur = pcur->next;
//    }
//    if (newtail)
//        newtail->next = NULL;
//    return newhead;
//}
//struct ListNode* SLTBuyNode(int x)
//{
//    struct ListNode* newnode = (struct ListNode*)malloc(sizeof(struct ListNode));
//	if (newnode == NULL)
//	{
//		perror("malloc fail!");
//		exit(1);
//	}
//	newnode->val = x;
//	newnode->next = NULL;
//
//	return newnode;
//}
//void SLTPushFront(struct ListNode** pphead, int x)
//{
//    assert(pphead);
//    struct ListNode* newnode = SLTBuyNode(x);
//    newnode->next = pphead;
//    pphead = newnode;
//}
//int main()
//{
//    struct ListNode* plist = 5;
//    SLTPushFront(&plist, 4);
//    SLTPushFront(&plist, 3);
//    SLTPushFront(&plist, 2);
//    SLTPushFront(&plist, 1);
//    removeElements(&plist,5);
//    return 0;
//}
